home *** CD-ROM | disk | FTP | other *** search
-
-
- DEAR SHAREWARE USER AND POTENTIAL CUSTOMER:
-
-
- We are happy to provide you with this updated diskette. In
- this edition there are several new functions based on ideas
- from customers like yourself, plus a few bug fixes. We look
- forward to improving the product further to meet your needs.
- Complete details of all changes are shown below.
-
- We would also like to extend a special offer to anyone
- interested in further documentation. The entire text from
- "The EBL-Plus Language - Users Guide" is included in this
- distribution. Simply look at the users guide by typing
- 'VIEWBOOK EBLBOOK' at the system command prompt. This
- hypertext guide allows you to quickly browse the entire
- manual. We're sure you will find it useful. After
- experiencing the power of EBL-Plus, batch files will never
- be the same!
-
-
-
-
-
-
- DETAIL OF CHANGES TO EBL-PLUS
-
- * EBL 4.09
-
- - Included ABBREV(), BITAND(), BITOR(), BITXOR(),
- BLINK(), CURSOR(), DOSCHARIN(), OVERLAY(), and
- XRANGE() functions from the compiler.
-
- - Added recognition of DOS 7.X & OS/2 2.X & Windows-95!
-
- - New error message #47 "Unknown function()" to
- clarify certain types of syntax errors.
-
- - Enhanced inline code capability of stack to also
- allow execution when a keyboard stack pause has
- completed. This also allows execution of inline code
- even when applications aren't waiting for keys. On
- entry, the inline code can look at AH to determine
- the source of startup. The expanded register
- meanings are:
- Entry into inline code:
- AH = 0 = GetKey
- 1 = GetKeyStatus
- 2 = Pause (via Timer Tick) complete
- DS:SI = Address of the start of the Inline Code
- During inline:
- AX,BX,CX,DX,SI can be changed freely
- Return from Inline:
- SI = 0 = Call standard BIOS and reexecute the same inline
- AH = x = If SI=0 and AH=2 on entry, AH=x on return indicates
- amount of ticks to pause before reexecuting.
-
- - New DOS GROUP command will act as synonym for LEAVE
- command.
-
- - New BAT GROUP command will flag return to EBL after
- DOS GROUPs. (Truely is a NOP).
-
- - Fixed GOTO to DOS label when using /OLD under
- limited memory condition.
-
-
- * EBL 4.07
-
- - Updated code which follows DOS's CALL chain to match
- DOS5's characteristics. (thanks Arno Krakauer and
- George Szentirmai)
-
- - Updated code which closes files being read when
- shelling. (Thanks Jim Fouch)
-
- * EBL 4.06c
-
- - Support added to recognize DOS 5.
-
- - Added flexability when GOTO is used within a
- BEGIN/END block to avoid many block nesting errors.
-
- - A bug was fixed to allow a ';' (semicolon) character
- to be used at the end of all TYPE statements after a
- WINDOW() function, just like it can be used outside
- of a window.
-
- - The COLOR() function was enhanced to allow free-form
- color names contained within variables. This feature
- matches the capability of the Professional EBL-Plus
- compiler version 1.02 and later.
-
- * EBL 4.05
-
- - A minor bug within the GOTO command caused it to be
- slower than normal. It now runs at full speed.
-
-
-
- Page 1
-
-
- - KEY(PRTSC) key is recognized and will properly print
- the screen on the line printer when the key is read
- from the stack. The equivalent key value within
- BEGSTACK is \F0\01.
-
- - Inline code can be placed in the stack. If you are
- familiar with assembly language programming, this
- technique can provide extra power within the stack
- in special instances. The executable code must be
- preassembled and the hex machine code must be placed
- in the stack using BEGSTACK. The prefix within
- BEGSTACK is \F0\02\ss\cc\cc\cc ... \cc where ss is
- the size of the code in bytes (0 to 255 bytes) and
- cc is the hexadecimal value of each byte to execute.
- The suffix \C3; must also be added. C3 is a near RET
- instruction and the ';' prevents an implied Enter
- key from being stacked. The registers AX, BX, CX,
- DX, and SI will be saved prior to execution and can
- be used freely as temporary storage. The DS
- register will be the same as CS. On entry to the
- inline code, AH=0 if the application is requesting a
- keystroke, and AH=1 if requesting keyboard status
- (refer to BIOS Int 16h for more information). DS:SI
- will be set to the address of the inline code entry
- point. If SI is zero before returning, EBL will
- allow a single keystroke to be gotten from the
- hardware and the inline code will be reexecuted. In
- this case, other items on the keyboard stack will
- not be used until the inline code returns SI
- non-zero. The code must be fully relocatable
- without any absolute addresses. If any other
- registers are used, they must be saved and restored
- within the inline code.
-
- Some examples: The following will create a beep when
- executed within the stack.
- BEGSTACK
- \f0\02\06\b8\07\0e\cd\10\c3;
- END
-
- It is equivalent to the following assembly language
- code
- Mov Ax,0E07h
- Int 10h
- Ret
-
- The following will page eject the LPT1 printer
- BEGSTACK
- \f0\02\08\ba\00\00\b0\0c\cd\17\c3;
- END
-
- and is equivalent to
- Mov Dx,0
- Mov Al,0Ch
- Int 17h
- Ret
-
- The following automatically types the word
- 'ACCOUNT', then will allow 3 keystrokes to be
-
-
- Page 2
-
-
- manually entered, then the enter key will be pressed
- after this.
- BEGSTACK
- ACCOUNT;
- \f0\02\12\EB\02\04\00\80\FC\00\75\05\FF\4C\02\74\03\BE\00\00\C3;
-
- END
-
- and the inline code is equivalent to the following.
- This example demonstrates how local storage can be
- maintained for the inline code. It also shows how
- the stack can be stopped until specific events
- occur, in this case waiting for the application to
- request 3 keys.
- Jmp short Me ; Jump over local storage
- Dw 4 ; Define local counter
- Me: Cmp Ah,0 ; Did App request a key?
- Jne Restart ; No, am counting just keys
- Dec Word ptr [si+2] ; Decrement the count of keys
- Je Done ; Count is over?
- Restart: Mov Si,0 ; No, SI = 0 means restart
- Done: Ret ; Else continue & release stack
-
- * EBL 4.04
-
- - Corrected bug where drive letter was always required
- for the updated CHDIR() function (e.g. CHDIR("C
- :\SUB"). It is now optional as it was intended (e.g.
- CHDIR("\SUB").
-
- - The British spelling for CENTRE() was not
- implemented correctly. Now both CENTER() and
- CENTRE() perform the same function.
-
- - A bug was fixed within the SPACE() function that
- caused a hang if one non-blank character was used as
- a fill.
-
- - A SUBSTR() function has been added. This is a
- superset of the existing substring operator '$'. The
- syntax is: SUBSTR( string ,start {,length, {pad}} )
- This function returns the sub-string of a (string)
- starting at the (start) character within the string,
- up to (length) characters long. If (length) is
- longer than the original string, then a (pad)
- character is appended. The default (length) is the
- size of the original string. The default (pad)
- character is a blank. A synonym for the SUBSTR()
- function is MID(). Either function name can be used.
-
- * EBL 4.03
-
- - Corrected minor bug in DATE(Century) function.
-
- - Corrected cursor positioning bug if READ was used
- within a WINDOW.
-
- - Updated EDIT() to read keystrokes from DOS rather
- than BIOS to provide a system interface that works
-
-
- Page 3
-
-
- on a wider set of computers.
-
- - Corrected SELECT() cursor positioning bug if used on
- a slow PC.
-
- - Updated CHDIR() function to also change the default
- drive in addition to the current subdirectory.
-
- * EBL 4.02
-
- - On IBM's 101 key keyboard, the CHARIN() function
- returned F1 and F2 when F11 and F12 was pressed
- respectively. This has been fixed.
-
- - A new /A option ignores DOS version checking (use
- with caution). Must be used with /R option as in:
- BAT /A /R PROGRAM.BAT to startup the batch file
- named PROGRAM. This will allow EBL to work under
- many DOS enhancers like PC-MOS and 4DOS.
-
- - The EBL-Plus Professional version of EBL.BIN and
- EBL0.BIN are released and match 4.02 in features and
- capabilities. Both can be 'bound' to a batch file
- with DOS's COPY command, then distributed royalty
- free. The EBL0 version does not use or reference
- any resident memory. By comparison, the EBL version
- has a small TSR portion that remains resident just
- like the matching BAT.COM. Please contact us at
- 1-800-634-8188 if you would like further information
- about the EBL-Plus Professional version.
-
- * 4.01
-
- - KEY(" ") function within an expression returns
- "KEY020" which matches the INKEY function. Formerly
- it returned " " which was different from INKEY.
-
- - Recognition of DOS 4.x rather than 4.0
-
- - RANDOM( {{min, } max {,seed}} ) function has been
- added. The default min is 0, default max is 999,
- default seed is random based on time. If only one
- parameter is supplied, it is a max and the min will
- be 0. If seed is not given, seed is random (based
- on system time). If a seed is given, it will
- restart a repeatable pseudo random pattern.
-
- - Correction made to DIR(file,R) command so that it
- will restore properly.
-
- - TRANSLATE( string {,{to list}{,{from list}{,pad}}} )
- function has been added. This function translates a
- string to different characters. If a character in
- the string is found in the input list of characters
- (from), then it will be translated to the
- corresponding character in the output list (to). If
- the character is not found in the input list, then
- no change is made. If there are more characters in
- {from} than {to}, it will be translated to a pad
-
-
- Page 4
-
-
- character. The default pad character is a blank.
- The default output list is empty (null). If only a
- string is supplied without any lists, then the
- string will be translated to upper case. For
- example:
-
- TRANSLATE("12/23/56","-","/") == "12-23-56"
- TRANSLATE("abcde","HEX","bcd") == "aHEXe"
- TRANSLATE("abcde","1","bcd",".") == "a1..e"
-
- - Correction made to an error inadvertently reported
- when an extended BATXV variable was used in a SHELL
- command.
-
- - Correction made to duplicate CHDIR() function listed
- in help screen.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Page 5